home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 September / CHIP Turkiye Eylül 1997.iso / demolar / enternet / setup.mst < prev    next >
Text File  |  1997-01-14  |  12KB  |  394 lines

  1. '$INCLUDE 'setupapi.inc'
  2. '$INCLUDE 'mscpydis.inc'    ''System
  3. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  4.  
  5. ''Dialog ID's
  6. CONST WELCOME       = 100
  7. CONST ASKQUIT       = 200
  8. CONST DESTPATH      = 300
  9. CONST EXITQUIT      = 600
  10. CONST EXITSUCCESS   = 700
  11. CONST EXITFAILURE   = 400
  12. CONST BADPATH       = 6400
  13. CONST APPHELP       = 900
  14. CONST WELCOMEVFW    = 1000
  15. CONST CHECK         = 2500
  16. CONST SMALLWIN      = 2200
  17. CONST RESTART       = 2600
  18. CONST RESTARTII     = 2700
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 1
  22.  
  23. GLOBAL SizeReq&  '' Total Disk Size required for installation
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL WINDIR$
  26. GLOBAL SYSTEMDIR$
  27. GLOBAL NOTEPAD$
  28. GLOBAL REGISTER$
  29. GLOBAL WinSysDir$
  30. GLOBAL WinSys32Dir$
  31. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  32. GLOBAL CHECKSTATES$
  33. GLOBAL MinorVer%
  34. GLOBAL OnNT$
  35.  
  36.  
  37.  
  38. DECLARE SUB Install
  39. DECLARE SUB InstallVFW
  40. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  41. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  42. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  43. DECLARE SUB Reboot LIB "iniupd.dll"
  44. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  45.  
  46. INIT:
  47.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  48.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  49.  
  50.  
  51.     SetBitmap CUIDLL$, LOGO
  52.     SetTitle "English for Children Setup"
  53.  
  54.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  55.     IF szInf$ = "" THEN
  56.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  57.     END IF
  58.     ReadInfFile szInf$
  59.  
  60.     DEST$ = "C:\ENGLISH"
  61.     WINDIR$ = GetWindowsDir
  62.     SYSTEMDIR$ = MakePath(WINDIR$,"SYSTEM")
  63.  
  64. WELCOME:
  65.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc",0,"")
  66.     IF sz$ = "CONTINUE" THEN
  67.         UIPop 1
  68.     ELSE
  69.         GOSUB ASKQUIT
  70.         GOTO WELCOME
  71.     END IF
  72.  
  73.  
  74. GETPATH:
  75.     SetSymbolValue "EditTextIn", DEST$
  76.     SetSymbolValue "EditFocus", "END"
  77. GETPATHL1:
  78.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0,"")
  79.     DEST$ = GetSymbolValue("EditTextOut")
  80.  
  81.     IF sz$ = "CONTINUE" THEN
  82.         IF IsDirWritable(DEST$) = 0 THEN
  83.             GOSUB BADPATH
  84.             GOTO GETPATHL1
  85.         END IF
  86.         UIPop 1
  87.     ELSEIF sz$ = "REACTIVATE" THEN
  88.         GOTO GETPATHL1
  89.     ELSEIF sz$ = "BACK" THEN
  90.         UIPop 1
  91.         GOTO WELCOME
  92.     ELSE
  93.         GOSUB ASKQUIT
  94.         GOTO GETPATH
  95.     END IF
  96.  
  97.  
  98.     Install
  99.  
  100. QUIT:
  101.  
  102.     ON ERROR GOTO ERRQUIT
  103.  
  104.     IF ERR = 0 THEN
  105.         dlg% = EXITSUCCESS
  106.     ELSEIF ERR = STFQUIT THEN
  107.         dlg% = EXITQUIT
  108.     ELSE
  109.     dlg% = EXITFAILURE
  110.     END IF
  111. QUITL1:
  112.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  113.     IF sz$ = "REACTIVATE" THEN
  114.         GOTO QUITL1
  115.     END IF
  116.     UIPop 1
  117.     IF dlg% = EXITSUCCESS THEN
  118.         i% = DoMsgBox("Would you like to install Video for Windows 1.1e ?", "English for Children Setup", 1+MB_TASKMODAL+MB_QUESTION)   
  119.         IF i% = 1 THEN
  120.             GOTO   InitVFW
  121.         ENDIF
  122.     ENDIF
  123.     END
  124.     RETURN
  125.  
  126. ERRQUIT:
  127.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  128.     END
  129.  
  130.  
  131.  
  132. BADPATH:
  133.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  134.     IF sz$ = "REACTIVATE" THEN
  135.         GOTO BADPATH
  136.     END IF
  137.     UIPop 1
  138.     RETURN
  139.  
  140.  
  141.  
  142. ASKQUIT:
  143.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  144.  
  145.     IF sz$ = "EXIT" THEN
  146.         UIPopAll
  147.         ERROR STFQUIT
  148.     ELSEIF sz$ = "REACTIVATE" THEN
  149.         GOTO ASKQUIT
  150.     ELSE
  151.         UIPop 1
  152.     END IF
  153.     RETURN
  154.  
  155. SMALLWIN:
  156.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  157.     IF sz$ = "REACTIVATE" THEN
  158.     GOTO SMALLWIN
  159.     END IF
  160.     UIPop 1
  161.     RETURN
  162.  
  163. '**************************************************************************
  164. '*                  VfW 1.1 Runtime Setup
  165. '**************************************************************************
  166. InitVFW:
  167.  
  168.     WIN32ENABLED% = 0
  169.     MajorVer% = GetWindowsMajorVersion()
  170.     MinorVer% = GetWindowsMinorVersion()
  171.     Processor% = GetProcessorType()
  172.     WinDir$ = GetWindowsDir()
  173.     DEST$ = GetWindowsDir()
  174.     WinSysDir$ = GetWindowsSysDir()
  175.     WinSys32Dir$ = WinDir$ + "system32"
  176.  
  177.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  178.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  179.     END
  180.     END IF
  181.  
  182.     'Prevents installation on 286
  183.     IF Processor% < 3 THEN
  184.     i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  185.     END
  186.     END IF
  187.  
  188.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  189.     IF OnWindowsNT() THEN
  190.       OnNT$ = "TRUE"
  191.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  192.       IF WowVersion$ = "" THEN
  193.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  194.          END
  195.       END IF
  196.     END IF
  197.  
  198.     SetBitmap CUIDLL$, 2
  199.     SetTitle "Video for Windows 1.1 Runtime"
  200.  
  201.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  202.     IF szInf$ = "" THEN
  203.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  204.     END IF
  205.     ReadInfFile szInf$
  206.  
  207.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  208.  
  209. WELCOMEV:
  210.     sz$ = UIStartDlg(CUIDLL$, WELCOMEVFW, "FInfoDlgProc", APPHELP, HELPPROC$)
  211.     IF sz$ = "CONTINUE" THEN
  212.        UIPop 1
  213.      ELSE
  214.     GOSUB ASKQUIT
  215.         GOTO WELCOMEV
  216.     END IF
  217.  
  218. ''Prepare Copy list and check size
  219.  
  220.     ClearCopyList
  221.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  222.  
  223. '' Remove DCISVGA file
  224.     AddSectionFilesToCopyList "remove", SrcDir$, WinSysDir$
  225.  
  226. ''  Runtime files (on Windows disk)
  227. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  228.  
  229.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  230.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  231.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  232.     END IF
  233.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  234.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  235.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  236.     IF OnNT$ = "TRUE" THEN
  237.     AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  238.     ENDIF
  239.  
  240. ''  Check windrive diskspace
  241.     SizeReq& = GetCopyListCost ("","", "")
  242.     IF SizeReq& <> 0 THEN
  243.     GOSUB SMALLWIN
  244.     END
  245.     END IF
  246.  
  247.  
  248.     InstallVFW
  249.  
  250.  
  251. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  252. '' else, it gives the user the choice
  253.     RESTRT% = RestartListEmpty ()
  254.     Exe$ = DEST$ + "\_msrstrt.exe"
  255.     Batch$ = DEST$ + "\_mssetup.bat"
  256.     empty$ = ""
  257. RESTART:
  258.     IF RESTRT% = 0 THEN
  259.        sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  260.        IF sz$ = "REACTIVATE" THEN
  261.       GOTO RESTART
  262.        ENDIF
  263.        I% = ExitExecRestart ()
  264.        RemoveFile Exe$, cmoForce
  265.        RemoveFile Batch$, cmoForce
  266.        END
  267.     ELSE
  268.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  269.        IF sz$ = "CONTINUE" THEN
  270.       I% = ExitWindowsExec (Exe$, empty$)
  271.       IF I% = 0 THEN
  272.          GOTO RESTART
  273.       ELSE
  274.          END
  275.      ENDIF
  276.        ELSEIF sz$ = "EXIT" THEN
  277.       UIPopAll
  278.       END
  279.        ELSEIF sz$ = "REACTIVATE" THEN
  280.       GOTO RESTART
  281.        ELSE
  282.       UIPop 1
  283.        END IF
  284.     END IF
  285.  
  286. RETURN
  287.  
  288. '**
  289. '** Purpose:
  290. '**     Builds the copy list and performs all installation operations.
  291. '** Arguments:
  292. '**     none.
  293. '** Returns:
  294. '**     none.
  295. '*************************************************************************
  296. SUB Install STATIC
  297.  
  298.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  299.     CreateDir DEST$, cmoNone
  300.  
  301.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  302.     AddSectionFilesToCopyList "drivers", SrcDir$, SYSTEMDIR$
  303.     CopyFilesInCopyList
  304.  
  305.     ini$ = MakePath(WINDIR$, "SYSTEM.INI")
  306.     CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoNone
  307.     CreateIniKeyValue ini$, "mci", "AVIVideo", "mciavi.drv", cmoNone
  308.     CreateIniKeyValue ini$, "drivers", "VIDC.MSVC", "msvidc.drv", cmoNone
  309.     CreateIniKeyValue ini$, "drivers", "VIDC.AFLC", "flccodec.drv", cmoNone
  310.  
  311.     CreateProgmanGroup "English for Children", "", cmoNone
  312.     ShowProgmanGroup  "English for Children", 1, cmoNone''
  313.     CreateProgmanItem "English for Children", "English for Children", MakePath(DEST$,"english.exe"), ",,,,"+SrcDir$, cmoOverwrite
  314.  
  315. END SUB
  316.  
  317. '**
  318. '** Purpose:
  319. '**     Performs all installation operations.
  320. '** Arguments:
  321. '**     none.
  322. '** Returns:
  323. '**     none.
  324. '*************************************************************************
  325. SUB InstallVFW STATIC
  326.  
  327.     SetRestartDir WinDir$
  328.     CopyFilesInCopyList
  329.  
  330. ''Updating WIN.INI and SYSTEM.INI
  331. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  332.  
  333. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  334.     IF VflatdPresent() = 0 THEN
  335.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  336.     END IF
  337. END IF
  338.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  339.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  340.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  341.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  342.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  343.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  344.     IF I% = 0  THEN
  345.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  346.     END IF
  347.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  348.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  349.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  350.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  351.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  352.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  353.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  354.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  355.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  356.  
  357. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  358. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  359.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  360.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  361.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  362.  
  363. '' Mplayer
  364.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  365.  
  366. END IF    ''NT and next version of Windows installation stop here.
  367.  
  368.     Run ("profdisp.exe")   
  369. END SUB
  370.  
  371.  
  372.  
  373. '**
  374. '** Purpose:
  375. '**     Appends a file name to the end of a directory path,
  376. '**     inserting a backslash character as needed.
  377. '** Arguments:
  378. '**     szDir$  - full directory path (with optional ending "\")
  379. '**     szFile$ - filename to append to directory
  380. '** Returns:
  381. '**     Resulting fully qualified path name.
  382. '*************************************************************************
  383. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  384.     IF szDir$ = "" THEN
  385.         MakePath = szFile$
  386.     ELSEIF szFile$ = "" THEN
  387.         MakePath = szDir$
  388.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  389.         MakePath = szDir$ + szFile$
  390.     ELSE
  391.         MakePath = szDir$ + "\" + szFile$
  392.     END IF
  393. END FUNCTION
  394.